package cn.tedu.oopextends;

/**
 * @Author 金帮嘉诚
 * @Date 2021-06-09 周三 14:17
 */
/*本类用于测试继承中构造方法的使用*/
public class TestExtends3 {
    public static void main(String[] args) {
        //3.创建子类对象进行测试
        Son3 son3=new Son3();

    }
}
//两同两小一大
//1.创建父类
class Father3{
    /*构造方法可以被继承吗？不可以！！！！！！！
    * 原因：由于构造方法的语法要求，构造方法必须与类同名
    * 不能在子类里有一个父类名字的构造方法，天然不符合要求
    * */
    //5.提供父类的无参构造

//    public Father3() {
//        System.out.println("我是Father3的无参构造");
//    }


    public Father3(String i) {
    }
}
//2.创建子类 并建立子类与父类的继承关系
class Son3 extends Father3{
    /*在子类的构造方法中，默认存在super（）；表示调用父类的无参构造
    也就是说，在创建子类对象时，会去调用子类的构造方法，继承后
    会先去调用父类的构造方法，再去调用子类的构造方法
    
    * */

    //4.创建子类的无参构造
    public Son3() {
        //this();
        super("");//
        /*当父类中没有无参构造时，调用的是父类的含参构造
        子类不关心具体调用的是哪个父类的构造函数
        只是必须调用一个父类的构造函数而已
        * */
        System.out.println("我是Son3的无参构造~");
    }
    public Son3(int i){
        super("");
        System.out.println("i");
    }


}